/* eslint-disable no-unused-vars */
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
  transpileDependencies: true, // 保留原配置的转译行为

  publicPath: '/', // 应用部署的基础路径，生产环境通常设为服务器根路径或CDN地址
  pluginOptions: {
    electronBuilder: {
      // 指定主进程入口文件
      // package.json 的 "main" 经测试发现必须使用 "main": "./background.js" (原理：打包文件解压)
      mainProcessFile: './electron/index.js',

      builderOptions: {
        // 关键修复点1: 启用 ASAR 打包
        asar: true,
        // 必须解压的目录
        asarUnpack: [
        //   "img/**/*" // 只解压需要外部访问的目录 目录怪怪的
        ],

        // 关键修复：精简文件包含规则
        files: [
          "**/*",  // 包含所有文件
          "!dist_electron/**/*", // 排除构建目录
        ],
        extraResources: [
          {
            "from": "server/",
            "to": "server/",
            "filter": ["**/*"]
          }
        ],
        productName: "rule-process",
        appId: "com.geoffwo.ruleprocess",
        directories: {
          output: "dist_electron"
        },
        win: { target: "nsis",icon: "electron/assets/img/icon.ico" },//设置安装图标，路径相对于当前项目
        mac: { target: "dmg" },
        linux: { target: "deb" }
      }
    },
  },

  configureWebpack: { // 新增的路径别名配置
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'client'), // 确保路径指向你的新目录
      }
    },
    plugins: [
      new CopyWebpackPlugin([
        {
          // 源目录：需要复制的自定义目录（相对于项目根目录）
          from: 'client/assets',
          // 目标目录：打包后存放的路径（相对于 dist 目录）
          to: '.', // 最终路径为 dist/
        }
      ])
    ],
  },

  // 修改入口文件配置
  pages: { // Vue CLI 项目中用于配置多页面应用
    index: { // 页面名称（例如：首页）
      entry: 'client/main.js', // 【入口文件路径】指定该页面的入口 JS 文件
      template: 'client/index.html', // 【HTML 模板文件路径】生成页面时使用的 HTML 模板
      filename: 'index.html' // 【输出 HTML 文件名】构建后生成的 HTML 文件名
    }
  },
}